package com.share.finance.asset.sjd.model.db;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 用户基本信息
 * </p>
 *
 * @author author
 * @since 2023-09-08
 */
@Data
@Accessors(chain = true)
@TableName("ast_user_info")
public class UserInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 用户id,全局唯一
     */
    @TableField(value = "user_id")
    private String userId;
    /**
     * 身份证号码
     */
    @TableField(value = "id_card_no")
    private String idCardNo;
    /**
     * 客户姓名
     */
    @TableField(value = "user_name")
    private String userName;
    /**
     * 手机号
     */
    @TableField(value = "phone_no")
    private String phoneNo;
    /**
     * 状态，1有效,0无效
     */
    @TableField(value = "user_status")
    private String userStatus;
    /**
     * 身份证有效期自，yyyy-MM-dd
     */
    @TableField(value = "id_card_valid_start")
    private String idCardValidStart;
    /**
     * 身份证有效期至，yyyy-MM-dd
     */
    @TableField(value = "id_card_valid_end")
    private String idCardValidEnd;
    /**
     * 身份证发证机关
     */
    @TableField(value = "id_card_sign_organization")
    private String idCardSignOrganization;
    /**
     * 身份证地址
     */
    @TableField(value = "id_card_address")
    private String idCardAddress;
    /**
     * 出生日期，yyyy-MM-dd
     */
    @TableField(value = "birth_date")
    private String birthDate;
    /**
     * 民族
     */
    private String nation;
    /**
     * 1男 , 0女
     */
    private String sex;
    /**
     * 用户居住省
     */
    private String province;
    /**
     * 用户居住城市
     */
    private String city;
    /**
     * 用户居住区
     */
    private String district;
    /**
     * 现在居住详细地址
     */
    @TableField(value = "residential_address")
    private String residentialAddress;
    /**
     * 婚姻状态 ：0-未婚  1-已婚 3-离异 4-未知 5-丧偶
     */
    @TableField(value = "marital_status")
    private String maritalStatus;
    /**
     * 删除标记,0-未删除，1-已删除
     */
    @TableField(value = "is_delete")
    private String isDelete;
    /**
     * 数据插入时间
     */
    @TableField(value = "create_time")
    private Date createTime;
    /**
     * 数据更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;


    //扩展信息---文件信息
    @TableField(exist = false)
    private List<UserFile> userFiles;

    //扩展信息---卡信息
    @TableField(exist = false)
    private List<UserBindCard> userBindCards;
}
